﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DAL
{
    [Serializable]
   public partial  class Rol
   {
        public bool add(dbGestionDataContext _db,
                        string descripcion,
                        bool inActivo,
                        int nivelPrespuesto,
                        int nivelComparativo,
                        decimal montoComparativo,
                        bool aprobarOC,
                        bool aprobarRecepcion,
                        bool bitRevisorRendicion,
                        bool bitAperturaKardex,
                        bool bitDepositoRendicionC,
                        int idEmpleadoCre
                        )
                {           
                    this.descripcion = descripcion;
                    this.activo = inActivo;
                    this.nivelPrespuesto = nivelPrespuesto;
                    this.nivelComparativo = nivelComparativo;
                    this.bitAprobarOrdenCompra = aprobarOC;
                    this.bitAprobarRecepcion = aprobarRecepcion;
                    this.usuarioCre=idEmpleadoCre;
                    this.montoComparativo = montoComparativo;
                    this.fechaCre = DateTime.Now;
                    this.fechaMod = DateTime.Now;
                    this.usuarioMod = idEmpleadoCre;
                     this.bitCerrarRecepcion= false;
                     this.bitRevisorRecepcion = bitRevisorRendicion;
                     this.bitAperturaKardex = bitAperturaKardex;
                     this.bitDepositoRendicionC = bitDepositoRendicionC;


                   

                    _db.Rols.InsertOnSubmit(this);
                    _db.SubmitChanges();
    
                    return true;

                }
       public bool update(dbGestionDataContext _db,
                        string descripcion,
                        bool inActivo,
                        int nivelPrespuesto,
                        int nivelComparativo,
                        decimal montoComparativo,
                        int idEmpleadoMod,
                        bool aprobarOC,
                        bool aprobarRC,
                        bool revisorRC,
                        bool depositoRC,
                        bool aperturarKardex
                        )
                       {

                           this.descripcion = descripcion;
                           this.activo = inActivo;
                           this.montoComparativo = montoComparativo;
                           this.nivelPrespuesto = nivelPrespuesto;
                           this.nivelComparativo = nivelComparativo;
                           this.bitAprobarOrdenCompra = aprobarOC;
                           this.bitAprobarRecepcion = aprobarRC;
                           this.usuarioMod = idEmpleadoMod;
                           this.fechaMod= DateTime.Now;
                           this.bitRevisorRecepcion = revisorRC;
                           this.bitDepositoRendicionC = depositoRC;
                           this.bitAperturaKardex = aperturarKardex;

                          
                    
                           
           _db.SubmitChanges();
         return true;
       }



public int getidAnterior(dbGestionDataContext _db, int idinternal)
{
    int intAnterior = 0;


    var id = from i in _db.Rols
             where i.idInternal < idinternal
             select i;


    if (id.Count() > 0)
    {
        intAnterior = id.Max(p=>p.idInternal);

    }
    else
    {
        throw new Exception("No existe Registros");
    }


    return intAnterior;

}

public int getidSiguiente(dbGestionDataContext _db, int idinternal)
{
    int intSiguiente = 0;

    //revisar la sentencia generada
    var id = from i in _db.Rols
             where i.idInternal > idinternal
             select i;


    if (id.Count() > 0)
    {
        intSiguiente = id.Min(p=>p.idInternal);

    }
    else
    {
        throw new Exception("No existe Registros");
    }

    return intSiguiente;
}

    }
}
